package juanca.mole;

import java.util.Calendar;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONObject;

import ClasesExtras.GetIpAddress;
import ClasesExtras.ManejadorCampos;
import ClasesExtras.ValidacionCampos;
import ClasesExtras.handlerAlertMessage;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TimePicker;
import android.widget.Toast;

import com.savagelook.android.JsonHelper;

public class ChequeoDesinfec extends Activity {

	private int fAno;
	private int fMes;
	private int fDia;
	private int hMinuto;
	private int hHora;
	private boolean SALIR;
	private boolean acidoParece;
	private boolean amonioCuater;
	private String idEmpleado;
	private String passwEmpleado;
	private String obsChDesinfec;
	private String Correciones;
	private String idOperarioEmpleado;

	public ProgressDialog progressDialog;
	public String date;
	public String time;
	private String fechaUsuario;
	private String tiempoUsuario;
	private String fechaSistema;
	private String tiempoSistema;
	public ValidacionCampos validarcampos = new ValidacionCampos();
	public static final int DATE_DIALOG_ID = 0;
	public static final int TIME_DIALOG_ID = 1;
	public static final String STRING_EMPTY = "";
	private String URL_VALIDAR_USUARIO;
	private String URL_VERIFICA_DESINFECT;
	private String URL_REGISTROS_VERIFICA_DESINFECT;
	private static final String CNV = "cnv";
	private static final String PNV = "pnv";
	private static final String no_permiso = "no_permiso";
	private ChequeoDesinfec self = this;

	private Button btnRegChDesinfec;
	private EditText etIdChDesinfec;
	private EditText etPasswChDesinfec;
	private EditText etObsChDesinfec;
	private EditText etCorreChDesinfec;
	private RadioButton rbSiAcPare;
	private RadioButton rbNoAcPare;
	private RadioButton rbSiAmoCuater;
	private RadioButton rbNoAmoCuater;
	private ManejadorCampos manejador;
	private handlerAlertMessage manejadorMensajes;
	private Activity activity;

	/**
	 * @return the sALIR
	 */
	public boolean isSALIR() {
		return SALIR;
	}

	/**
	 * @param sALIR
	 *            the sALIR to set
	 */
	public void setSALIR(boolean sALIR) {
		SALIR = sALIR;
	}

	/**
	 * @return the idOperarioEmpleado
	 */
	public String getIdOperarioEmpleado() {
		return idOperarioEmpleado;
	}

	/**
	 * @param idOperarioEmpleado
	 *            the idOperarioEmpleado to set
	 */
	public void setIdOperarioEmpleado(String idOperarioEmpleado) {
		this.idOperarioEmpleado = idOperarioEmpleado;
		this.setSALIR(true);
	}

	public String getCorreciones() {
		return Correciones;
	}

	public void setCorreciones(String correciones) {
		Correciones = correciones;
		this.setSALIR(true);
	}

	public String getObsChDesinfec() {
		return obsChDesinfec;
	}

	public void setObsChDesinfec(String obsChDesinfec) {
		this.obsChDesinfec = obsChDesinfec;
		this.setSALIR(true);
	}

	public boolean isAcidoParece() {
		return acidoParece;
	}

	public void setAcidoParece(boolean acidoParece) {
		this.acidoParece = acidoParece;
		this.setSALIR(true);
	}

	public boolean isAmonioCuater() {
		return amonioCuater;
	}

	public void setAmonioCuater(boolean amonioCuater) {
		this.amonioCuater = amonioCuater;
		this.setSALIR(true);
	}

	public String getIdEmpleado() {
		return idEmpleado;
	}

	public void setIdEmpleado(String idEmpleado) {
		this.idEmpleado = idEmpleado;
		this.setSALIR(true);
	}

	public String getPasswEmpleado() {
		return passwEmpleado;
	}

	public void setPasswEmpleado(String passwEmpleado) {
		this.passwEmpleado = passwEmpleado;
		this.setSALIR(true);
	}

	public String getFechaUsuario() {
		return fechaUsuario;
	}

	public void setFechaUsuario(String fechaUsuario) {
		this.fechaUsuario = fechaUsuario;
		this.setSALIR(true);
	}

	public String getTiempoUsuario() {
		return tiempoUsuario;
	}

	public void setTiempoUsuario(String tiempoUsuario) {
		this.tiempoUsuario = tiempoUsuario;
		this.setSALIR(true);
	}

	public String getFechaSistema() {
		return fechaSistema;
	}

	public void setFechaSistema(String fechaSistema) {
		this.fechaSistema = fechaSistema;
		this.setSALIR(true);
	}

	public String getTiempoSistema() {
		return tiempoSistema;
	}

	public void setTiempoSistema(String tiempoSistema) {
		this.tiempoSistema = tiempoSistema;
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.layout_chequeo_desinfec);

		getWindow().setSoftInputMode(
				WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

		btnRegChDesinfec = (Button) findViewById(R.id.btnRegChDesinfec);
		etIdChDesinfec = (EditText) findViewById(R.id.etIdChDesinfec);
		etPasswChDesinfec = (EditText) findViewById(R.id.etPasswChDesinfec);
		etObsChDesinfec = (EditText) findViewById(R.id.etObsChDesinfec);
		etCorreChDesinfec = (EditText) findViewById(R.id.etCorreChDesinfec);
		rbSiAcPare = (RadioButton) findViewById(R.id.rbSiAcPare);
		rbNoAcPare = (RadioButton) findViewById(R.id.rbNoAcPare);
		rbSiAmoCuater = (RadioButton) findViewById(R.id.rbSiAmoCuater);
		rbNoAmoCuater = (RadioButton) findViewById(R.id.rbNoAmoCuater);
		manejadorMensajes = new handlerAlertMessage();
		manejador = new ManejadorCampos();
		activity = this;

		this.setSALIR(false);
	}

	@Override
	protected void onStart() {
		super.onStart();
		GetIpAddress direccion = new GetIpAddress(this);

		if (direccion.getDireccion() != null) {
			URL_VALIDAR_USUARIO = direccion.getDireccion() + "/validar.json";
			URL_VERIFICA_DESINFECT = direccion.getDireccion()
					+ "/validar_verifica_desinfect.json";
			URL_REGISTROS_VERIFICA_DESINFECT = direccion.getDireccion()
					+ "/registros_verifica_desinfect.json";
			final ProgressDialog pd = ProgressDialog.show(this, null,
					this.getString(R.string.PbMsjCargando), true, true);
			new Thread(new Runnable() {
				@Override
				public void run() {
					self.validarDiaRegistro(URL_VERIFICA_DESINFECT);
					Log.e("ServicioRest",
							"verifica si se puede diligenciar el formulario");
					pd.dismiss();

				}
			}).start();
		} else {
			new AlertDialog.Builder(this)
					.setIcon(android.R.drawable.ic_dialog_alert)
					.setTitle(R.string.tituloAlerta)
					.setMessage(R.string.msjErSinDireccion)
					.setPositiveButton(R.string.btnAceptar,
							new DialogInterface.OnClickListener() {// un
								// listener que al pulsar, cierre la
								// aplicacion
								@Override
								public void onClick(DialogInterface dialog,
										int which) {
									// Salir
									Intent intent = new Intent();
									intent.setClass(activity, Etapas.class);
									startActivity(intent);
								}
							}).show();
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.layout_chequeo_desinfec, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle item selection
		switch (item.getItemId()) {
		case R.id.menu_settings:

			if (this.salir()) {

				new AlertDialog.Builder(this)
						.setIcon(android.R.drawable.ic_dialog_alert)
						.setTitle(R.string.tituloAlerta)
						.setMessage(R.string.msjPregunta)
						.setNegativeButton(R.string.btnNo, null)// sin listener
						.setPositiveButton(R.string.btnSi,
								new DialogInterface.OnClickListener() {// un
									// listener que al pulsar, cierre la
									// aplicacion
									@Override
									public void onClick(DialogInterface dialog,
											int which) {
										// Salir
										Intent intent = new Intent();
										intent.setClass(activity, Etapas.class);
										startActivity(intent);
									}
								}).show();

				// Si el listener devuelve true, significa que el evento esta
				// procesado, y nadie debe hacer nada mas
				return true;
			} else {
				Intent intent = new Intent();
				intent.setClass(this, Etapas.class);
				startActivity(intent);
			}

		default:
			return super.onOptionsItemSelected(item);
		}
	}

	@SuppressWarnings("deprecation")
	public void FechaCheqDes(View v) {
		final Calendar c = Calendar.getInstance();
		fAno = c.get(Calendar.YEAR);
		fMes = c.get(Calendar.MONTH);
		fDia = c.get(Calendar.DAY_OF_MONTH);
		showDialog(DATE_DIALOG_ID);
	}

	@SuppressWarnings("deprecation")
	public void HoraCheqDes(View v) {
		final Calendar c = Calendar.getInstance();
		hHora = c.get(Calendar.HOUR_OF_DAY);
		hMinuto = c.get(Calendar.MINUTE);
		showDialog(TIME_DIALOG_ID);

	}

	@SuppressLint("SimpleDateFormat")
	private TimePickerDialog.OnTimeSetListener showtime = new TimePickerDialog.OnTimeSetListener() {

		@SuppressLint("SimpleDateFormat")
		@Override
		public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
			hHora = hourOfDay;
			hMinuto = minute;

			Context context = getApplicationContext();
			CharSequence text = new StringBuilder().append(hHora).append(":")
					.append(hMinuto);
			int duration = Toast.LENGTH_SHORT;

			Toast toast = Toast.makeText(context, text, duration);
			toast.show();
			time = (hHora + ":" + hMinuto).toString();

			setTiempoUsuario(time);

		}
	};

	private DatePickerDialog.OnDateSetListener showdate = new DatePickerDialog.OnDateSetListener() {

		@SuppressLint("SimpleDateFormat")
		@Override
		public void onDateSet(DatePicker view, int year, int monthOfYear,
				int dayOfMonth) {
			fAno = year;
			fMes = monthOfYear + 1;
			fDia = dayOfMonth;

			Context context = getApplicationContext();
			CharSequence text = new StringBuilder().append(fDia).append("-")
					.append(fMes).append("-").append(fAno);
			int duration = Toast.LENGTH_SHORT;

			Toast toast = Toast.makeText(context, text, duration);
			toast.show();

			date = (fDia + "-" + fMes + "-" + fAno + "-").toString();

			setFechaUsuario(date);

		}
	};

	@Override
	protected Dialog onCreateDialog(int id) {
		switch (id) {
		case TIME_DIALOG_ID:
			return new TimePickerDialog(this, showtime, hHora, hMinuto, true);

		case DATE_DIALOG_ID:
			return new DatePickerDialog(this, showdate, fAno, fMes, fDia);
		}
		return null;
	}

	// metodo que captura la fecha y la hora del sistema
	@SuppressLint("SimpleDateFormat")
	public void fechaHoraSistema() {
		final Calendar c = Calendar.getInstance();
		int ano = c.get(Calendar.YEAR);
		int mes = c.get(Calendar.MONTH) + 1;
		int dia = c.get(Calendar.DAY_OF_MONTH);
		int hora = c.get(Calendar.HOUR_OF_DAY);
		int minuto = c.get(Calendar.MINUTE);

		String date = (dia + "-" + mes + "-" + ano + "-").toString();
		String time = (hora + ":" + minuto).toString();

		this.setFechaSistema(date);
		this.setTiempoSistema(time);

	}

	// metodo de radiobutton acido
	public void rbAcPare(View v) {
		// Is the button now checked?
		boolean checked = ((RadioButton) v).isChecked();

		// Check which radio button was clicked

		switch (v.getId()) {
		case R.id.rbSiAcPare:
			if (checked) {

				this.setAcidoParece(checked);

			}
			break;
		case R.id.rbNoAcPare:
			if (checked) {
				this.setAcidoParece(!checked);

			}
			break;

		}
	}

	// metodo de radiobutton amonio
	public void rbAmoCuater(View v) {
		// Is the button now checked?
		boolean checked = ((RadioButton) v).isChecked();

		// Check which radio button was clicked

		switch (v.getId()) {
		case R.id.rbSiAmoCuater:
			if (checked) {

				this.setAmonioCuater(checked);

			}
			break;
		case R.id.rbNoAmoCuater:
			if (checked) {
				this.setAmonioCuater(!checked);

			}
			break;

		}
	}

	public void chequeoDesinfectantes(View v) {
		int identificacion = manejador.identificacion(etIdChDesinfec);
		int contrasena = manejador.contrasena(etPasswChDesinfec);

		if (identificacion != 0) {
			switch (identificacion) {
			case 8:
				manejadorMensajes.alertMessageOneButton(activity,
						R.string.tituloAlerta, R.string.msjIdenVacio,
						R.string.btnAceptar);
				break;
			case 9:
				manejadorMensajes.alertMessageOneButton(activity,
						R.string.tituloAlerta, R.string.msjIdenNumer,
						R.string.btnAceptar);

				break;

			case 10:
				manejadorMensajes.alertMessageOneButton(activity,
						R.string.tituloAlerta, R.string.msjIdenEspac,
						R.string.btnAceptar);
				break;
			}
		} else {
			if (contrasena != 0) {
				switch (contrasena) {
				case 11:
					manejadorMensajes.alertMessageOneButton(activity,
							R.string.tituloAlerta, R.string.msjContraVacio,
							R.string.btnAceptar);
					break;
				case 12:
					manejadorMensajes.alertMessageOneButton(activity,
							R.string.tituloAlerta, R.string.msjContraMaxmin,
							R.string.btnAceptar);
					break;
				}
			} else {
				this.validar();
			}
		}

	}

	public void validar() {
		this.fechaHoraSistema();
		if (this.getFechaSistema() != null && this.getTiempoSistema() != null) {
			if (this.getFechaUsuario() != null) {
				if (this.getTiempoUsuario() != null) {

					if (this.rbSiAcPare.isChecked()
							|| this.rbNoAcPare.isChecked()) {
						if (this.rbSiAmoCuater.isChecked()
								|| this.rbNoAmoCuater.isChecked()) {

							this.setIdEmpleado(this.etIdChDesinfec.getText()
									.toString());

							this.setPasswEmpleado(this.etPasswChDesinfec
									.getText().toString());

							if (this.etObsChDesinfec.getText().toString()
									.equals(STRING_EMPTY)) {

								String ObsChDesinfec = this.etObsChDesinfec
										.getText().toString();
								ObsChDesinfec = this.validarcampos
										.DeleteAccents(ObsChDesinfec);
								this.setObsChDesinfec(ObsChDesinfec);

							}
							if (this.etCorreChDesinfec.getText().toString()
									.equals(STRING_EMPTY)) {
								String CorreChDesinfec = this.etCorreChDesinfec
										.getText().toString();
								CorreChDesinfec = this.validarcampos
										.DeleteAccents(CorreChDesinfec);
								this.setCorreciones(CorreChDesinfec);

							}

							progressDialog = new ProgressDialog(self);
							progressDialog.setMessage(self
									.getString(R.string.PbMsjRegistrando));
							progressDialog.setCancelable(true);
							progressDialog.show();

							/* hilo que llama el metodo de validar usuario */
							new Thread(new Runnable() {
								@Override
								public void run() {
									self.validarUsuario();
									Log.e("ServicioRest",
											"entra validar usuario");

								}
							}).start();

						} else {
							manejadorMensajes.alertMessageOneButton(activity,
									R.string.tituloAlerta,
									R.string.msjAmonioCuater,
									R.string.btnAceptar);
						}

					} else {
						manejadorMensajes.alertMessageOneButton(activity,
								R.string.tituloAlerta, R.string.msjAcidoPare,
								R.string.btnAceptar);
					}

				} else {
					manejadorMensajes.alertMessageOneButton(activity,
							R.string.tituloAlerta, R.string.msjSelecHora,
							R.string.btnAceptar);
				}
			} else {
				manejadorMensajes.alertMessageOneButton(activity,
						R.string.tituloAlerta, R.string.msjSelecFecha,
						R.string.btnAceptar);
			}
		}
	}

	/* /metodo que lo redirecciona a la vista pre-produccion */
	public void goPreProd(View view) {
		if (this.salir()) {

			new AlertDialog.Builder(this)
					.setIcon(android.R.drawable.ic_dialog_alert)
					.setTitle(R.string.tituloAlerta)
					.setMessage(R.string.msjPregunta)
					.setNegativeButton(R.string.btnNo, null)// sin listener
					.setPositiveButton(R.string.btnSi,
							new DialogInterface.OnClickListener() {// un
								// listener que al pulsar, cierre la
								// aplicacion
								@Override
								public void onClick(DialogInterface dialog,
										int which) {
									// Salir
									Intent intent = new Intent();
									intent.setClass(activity, Etapas.class);
									startActivity(intent);
								}
							}).show();

		} else {
			Intent intent = new Intent();
			intent.setClass(this, PreProduccion.class);
			startActivity(intent);
		}
	}

	/* metodo que verifica que si es tiempo de diligenciar el formulario */
	public void validarDiaRegistro(String url) {
		try {
			JSONArray Array = JsonHelper.getJsonArrayFromUrl(url);
			String ObjArray = Array.getJSONObject(0).getString("estado");

			if (ObjArray.equals("false")) {
				runOnUiThread(new Runnable() {
					public void run() {
						btnRegChDesinfec.setEnabled(false);

						new AlertDialog.Builder(activity)
								.setIcon(android.R.drawable.ic_dialog_alert)
								.setTitle(R.string.tituloAlerta)
								.setMessage(R.string.msjERDiaVerficaDesinfect)
								.setPositiveButton(R.string.btnAceptar,
										new DialogInterface.OnClickListener() {// un
											// listener que al pulsar, cierre la
											// aplicacion
											@Override
											public void onClick(
													DialogInterface dialog,
													int which) {
												// Salir
												ChequeoDesinfec.this.finish();
											}
										}).show();

						Log.e("ServicioRest",
								"entra al hilo del false de verificacion de dia de diligencia");

					}
				});
			}
		} catch (Exception e) {
			manejadorMensajes.alertMessageOneButton(activity,
					R.string.tituloError, R.string.msjERConexionCargar,
					R.string.btnAceptar);

		}
	}

	/* valida si los campos de usuario estan vacios */
	public void validarUsuario() {

		String ced = this.getIdEmpleado();
		String pass = this.getPasswEmpleado();
		HttpClient httpClient = new DefaultHttpClient();
		HttpPost post = new HttpPost(URL_VALIDAR_USUARIO);// operarios
		post.setHeader("content-type", "application/json");

		try {

			// Construimos el objeto en formato JSON
			JSONObject dato = new JSONObject();
			dato.put("cedula", ced);// cedula del operario
			dato.put("password", pass);// contrasena del operario
			dato.put("formulario", "f_verifi_desinfect");// permisos

			StringEntity entity = new StringEntity(dato.toString());
			post.setEntity(entity);
			HttpResponse resp = httpClient.execute(post);

			this.setIdOperarioEmpleado(EntityUtils.toString(resp.getEntity()));

			if (this.getIdOperarioEmpleado().equals(CNV)) {
				runOnUiThread(new Runnable() {
					public void run() {
						progressDialog.dismiss();
						manejadorMensajes.alertMessageOneButton(activity,
								R.string.tituloAlerta,
								R.string.msjCedulaIncorrecta,
								R.string.btnAceptar);

					}
				});

			} else {
				if (this.getIdOperarioEmpleado().equals(PNV)) {
					runOnUiThread(new Runnable() {
						public void run() {
							progressDialog.dismiss();
							manejadorMensajes.alertMessageOneButton(activity,
									R.string.tituloAlerta,
									R.string.msjPasswordIncorrecta,
									R.string.btnAceptar);

						}
					});

				} else {

					if (this.getIdOperarioEmpleado().equals(no_permiso)) {
						runOnUiThread(new Runnable() {
							public void run() {
								progressDialog.dismiss();
								manejadorMensajes.alertMessageOneButton(
										activity, R.string.tituloAlerta,
										R.string.msjSinPermisos,
										R.string.btnAceptar);

							}
						});
					} else {

						new Thread(new Runnable() {
							@Override
							public void run() {
								self.envioBaseDatos();
								Log.e("ServicioRest", "entra envio basedatos");

							}
						}).start();
					}

				}

			}

		} catch (Exception ex) {
			runOnUiThread(new Runnable() {
				public void run() {
					progressDialog.dismiss();
					manejadorMensajes.alertMessageOneButton(activity,
							R.string.tituloError, R.string.msjERvalidarUsuario,
							R.string.btnAceptar);

				}
			});

		}

	}

	/*
	 * Registro de los datos de Chequeo desinfectante en la base de datos en el
	 * servidor
	 */
	public void envioBaseDatos() {

		HttpClient httpClient = new DefaultHttpClient();
		// URL del servidor para guardar los datos de zona lavado
		HttpPost post = new HttpPost(URL_REGISTROS_VERIFICA_DESINFECT);

		try {
			// Construimos el objeto cliente en formato JSON
			JSONObject dato = new JSONObject();
			dato.put("empleado_id",
					Integer.parseInt(this.getIdOperarioEmpleado()));
			dato.put("fecha_usuario", this.getFechaUsuario());
			dato.put("fecha_sistema", this.getFechaSistema());
			dato.put("hora_usuario", this.getTiempoUsuario());
			dato.put("hora_sistema", this.getTiempoSistema());
			dato.put("acido_parecetico", this.isAcidoParece());
			dato.put("amonio_cuaternario", this.isAmonioCuater());
			dato.put("correcciones", this.getCorreciones());
			dato.put("observaciones", this.getObsChDesinfec());

			StringEntity entity1 = new StringEntity(dato.toString());
			post.setHeader("Content-Type", "application/json; chartset=UTF-8");
			post.setEntity(entity1);
			HttpResponse resp1 = httpClient.execute(post);
			final String respStr = EntityUtils.toString(resp1.getEntity());

			if (respStr.equals("true")) {
				Log.e("ServicioRest",
						"el servidor me retorno true de almacenamiento exitoso");

				this.setIdOperarioEmpleado(null);
				this.setFechaUsuario(null);
				this.setTiempoUsuario(null);
				this.setFechaSistema(null);
				this.setTiempoUsuario(null);
				this.setCorreciones(null);
				this.setObsChDesinfec(null);

				runOnUiThread(new Runnable() {
					public void run() {

						progressDialog.dismiss();
						AlertDialog.Builder mensajeEmergente = new AlertDialog.Builder(
								activity);
						mensajeEmergente.setTitle(R.string.msjMuyBien);
						mensajeEmergente
								.setMessage(R.string.msjRegistroExitoso);
						mensajeEmergente.setNeutralButton(R.string.btnAceptar,
								new DialogInterface.OnClickListener() {

									public void onClick(DialogInterface dialog,
											int which) {
										btnRegChDesinfec.setEnabled(false);
										manejadorMensajes
												.alertMessageOneButton(
														activity,
														R.string.tituloAlerta,
														R.string.msjDiaVerficaDesinfect,
														R.string.btnAceptar);

									}
								});

						mensajeEmergente.create();
						mensajeEmergente.show();

					}
				});

				this.setSALIR(false);

			} else {
				runOnUiThread(new Runnable() {
					public void run() {

						progressDialog.dismiss();
						AlertDialog.Builder mensajeEmergente = new AlertDialog.Builder(
								activity);
						mensajeEmergente.setTitle(R.string.tituloError);
						mensajeEmergente.setMessage(respStr);
						mensajeEmergente.setNeutralButton(R.string.btnAceptar,
								new DialogInterface.OnClickListener() {

									public void onClick(DialogInterface dialog,
											int which) {

									}
								});

						mensajeEmergente.create();
						mensajeEmergente.show();
						Log.e("ServicioRest",
								"el servidor no retorno true y esta en el mensaje en pantalla");
					}
				});
			}

		} catch (Exception e) {

			Log.e("ServicioRest", "me salta al catch de registrar los datos");
			// mensaje de respuesta del servidor
			runOnUiThread(new Runnable() {
				public void run() {
					progressDialog.dismiss();
					manejadorMensajes.alertMessageOneButton(activity,
							R.string.tituloError, R.string.msjERConexionEnviar,
							R.string.btnAceptar);

				}
			});
		}
	}

	/* metodo que controla el boton atr�s */
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {

		if (keyCode == KeyEvent.KEYCODE_BACK) {
			if (this.salir()) {

				new AlertDialog.Builder(this)
						.setIcon(android.R.drawable.ic_dialog_alert)
						.setTitle(R.string.tituloAlerta)
						.setMessage(R.string.msjPregunta)
						.setNegativeButton(R.string.btnNo, null)// sin listener
						.setPositiveButton(R.string.btnSi,
								new DialogInterface.OnClickListener() {// un
									// listener que al pulsar, cierre la
									// aplicacion
									@Override
									public void onClick(DialogInterface dialog,
											int which) {
										// Salir
										ChequeoDesinfec.this.finish();
									}
								}).show();

				// Si el listener devuelve true, significa que el evento esta
				// procesado, y nadie debe hacer nada mas
				return true;
			} else {
				ChequeoDesinfec.this.finish();
			}
		}
		// para las demas cosas, se reenvia el evento al listener habitual
		return super.onKeyDown(keyCode, event);
	}

	/* verifica si no hay ningun dato en memoria ni en campos */
	public boolean salir() {

		if (this.isSALIR()) {
			return true;
		} else {
			return false;
		}

	}

	@Override
	protected void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);

		outState.putString("fecha", date);
		outState.putString("hora", time);

	}

	@Override
	protected void onRestoreInstanceState(Bundle savedInstanceState) {
		super.onRestoreInstanceState(savedInstanceState);

		this.setFechaUsuario(savedInstanceState.getString("fecha"));
		this.setTiempoUsuario(savedInstanceState.getString("hora"));

	}
}
